<?php

//严格类型检查模式
declare(strict_types=1);

namespace app\common\business;
//业务逻辑处理
use app\common\lib\Num;
use app\common\lib\sms\AliSms;

class Sms
{
    public static function sendCode(string $phoneNumber, int $len,$type="Ali"): bool   //返回布尔类型
    {
        //生成短信验证码 6位
        $code = Num::getCode($len);

        //使用阿里云验证码
       // $sms = AliSms::sendCode($phoneNumber, $code);

        //使用工厂模式
        $type=ucfirst($type);
        $class= "app\common\lib\sms\\".$type."Sms";
        // 调用方法
        $sms=$class::sendCode($phoneNumber,$code);

        // halt($sms);
        if ($sms) {
            //成功之后把验证码 记录到redis里  给出一个失效时间
            cache(config("redis.code_pre") . $phoneNumber, $code, config("redis.code_expire"));
        }
        return $sms;
    }
}